
/**
 * Generic visitor for a relational algebra expression.
 * @author Jonathan
 *
 * @param <T> return type of visitor
 */
public interface RAExpressionVisitor<T> {

	public T selectionCase(RASelection raSelection, Object[] args);

	public T groupingCase(RAGrouping raGrouping, Object[] args);

	public T joinCase(RAJoin raJoin, Object[] args);
	
	public T orderCase(RAOrder raOrder, Object[] args);

	public T baseTableCase(Object[] args);
	
}
